package com.catazy.album.data.datasource.database.model

import com.catazy.album.domain.enum.ImageSize

/**
 * 作者: Tao
 * 日期: 2024/12/23
 * 时间: 10:08
 * 描述:
 */
internal enum class ImageSizeEntityModel {
    MEDIUM, SMALL, LARGE, EXTRA_LARGE, MEGA
}

/**
 * 将 ImageSizeEntityModel 转换为对应的 ImageSize 域模型。
 *
 * @return 返回一个对应的 ImageSize 枚举实例，或在未找到匹配项时返回 null。
 */
internal fun ImageSizeEntityModel.toDomainModel() =
    // ImageSize.entries:
        //ImageSize 是一个枚举类。
        //entries 是枚举类的一个静态属性，返回该枚举类中所有枚举常量的数组（Array<ImageSize>）。
    //firstOrNull:
        //这是一个扩展函数，作用于集合（如列表、数组等），用于查找满足给定条件的第一个元素。
        //如果找到符合条件的元素，则返回该元素；否则返回 null。
    //它不会抛出异常，即使找不到匹配项，因此是安全的
    ImageSize.entries.firstOrNull { it.name.equals(this.name, ignoreCase = true) }